home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 13 / CU Amiga Magazine's Super CD-ROM 13 (1997)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1997-08].iso / StormC_demo / StormC Install-Script < prev    next >
Text File  |  1997-01-07  |  13KB  |  471 lines

  1. ; $VER: StormC V2. Install Version 1.07 (07.1.97)
  2. ; Installations-Script - na, wofür wohl?
  3. ; (c) 1997 HAAGE & PARTNER Computer GmbH
  4.  
  5. (complete 0)
  6.  
  7. ; Die Versionsnummer und das Erstellungs-Datum der hier installierten
  8. ; Versionen.
  9.  
  10. (set stcpp-version "2.0")
  11. (set stcpp-date "(7 Dez 96)")
  12.  
  13. ;====================================================================
  14. ; Initialisierungen
  15.  
  16.  
  17. (set @default-dest "")
  18.  
  19. (set os-version (/ (getversion) 65536))
  20. (set os-13 (< os-version 36))
  21. (set os-20 (>= os-version 36))
  22. (set os-21 (>= os-version 38))
  23.  
  24. (set totalmem (database "total-mem")) ; Diese schöne Funktion vereinfacht einiges
  25.  
  26. ; Die Pfadnamen der Programme, die vom Installations-Skript aufgerufen werden.
  27.  
  28. ; Die Pfadnamen der einzelnen Quell-Dateien.
  29.  
  30. (set #binsource             (tackon (pathonly @icon) "StormSYS"))    ; Hier stehen die Ausführbaren Programme
  31. (set #includesource         (tackon (pathonly @icon) "INCLUDE"))     ; Hier stehen die Includes
  32. (set #envsource            (tackon (pathonly @icon) "ENV"))            ; Die Voreinstellungen
  33. (set #libsource            (tackon (pathonly @icon) "LIB"))            ; Hier stehen die Bibliotheken
  34. (set #wizlib               (tackon (pathonly @icon) "LIBS/Wizard.library")); Hier steht die Bibliohtek
  35. (set #samplesource        (tackon (pathonly @icon) "Examples"))    ; Hier stehen die Demo-Sourcen
  36. (set #manualsource        (tackon (pathonly @icon) "MANUAL"))        ; Hier steht die Dokumentation
  37. (set #toolssource       (tackon (pathonly @icon) "TOOLS"))        ; Hier stehen die Tools
  38. (set #rexxsource        (tackon (pathonly @icon) "Rexx"))     ; Die neuen Makescripts
  39. ;(set #flibsource        (tackon (pathonly @icon) "Fast-Ansi-Lib")) ; Hier steht die neue Ansi-lib
  40. ;(set #muilibsource      (tackon (pathonly @icon) "Mui-Class-Lib")) ; Hier steht die Mui Klassen-Library
  41. (set source-Liesmich     (tackon (pathonly @icon) "Liesmich"))        ; Die Liesmich Datei
  42. (set source-readme        (tackon (pathonly @icon) "Readme"))        ; Die Liesmich Datei
  43. (set source-italreadme     (tackon (pathonly @icon) "Leggimi"))        ; Die Liesmich Datei
  44. (set source-ikon           (tackon (pathonly @icon) "StormCPP.info"))    ; Das Programm-Piktogramm
  45.  
  46.  
  47. (set #prp-copy-samples
  48.     "Kopiere die C und C++ Beispielprogramme")
  49. (set #hlp-copy-bin
  50.     "Anhand des Handbuches und der Beispiele können Sie sich sehr schnell in StormC einarbeiten")
  51. (set #prp-copy-env
  52.     "Kopiere die StormC Default-Piktogramme")
  53. (set #hlp-copy-env
  54.     "Die Piktogramme werden von der Projektverwaltung und vom Editor benötigt")
  55. (set #prp-copy-includes
  56.     "Kopiere die C++ Systemincludes")
  57. (set #hlp-copy-includes
  58.     "Die Includes werden vom Compiler-Preprozessor benötigt")
  59. (set #prp-copy-libs
  60.     "Kopiere die Linker-Bibliotheken")
  61. (set #hlp-copy-libs
  62.     "Die Bibliotheken werden vom Linker benötigt")
  63. (set #prp-copy-manual
  64.     "Kopiere die Dokumentation")
  65. (set #hlp-copy-manual
  66.     "Eine Amiga-Guide-Datei zu StormC")
  67. (set #prp-copy-bin
  68.     "Kopiere die Ausführbaren Dateien des Compilersystems")
  69. (set #hlp-copy-bin
  70.     "Bei der allerersten Installation sollten Sie auch alle Dateien kopieren")
  71. (set #prp-copy-tools
  72.     "Kopiere die Screen-Tools")
  73. (set #hlp-copy-tools
  74.     "Der Pubscreen-Manager zu StormC")
  75. (set #prp-copy-wizlib
  76.    "Kopiere die Wizard.Library")
  77. (set #hlp-copy-wizlib
  78.    "Sie ist für die sehr kurzen Programme verantwortlich!")
  79. (set #prp-copy-fastlib
  80.    "Kopieren die FAST-ANSI-Library")
  81. (set #hlp-copy-fastlib
  82.    "Mit ihr können sehr kurze ANSI-C Programme erzeugt werden")
  83. (set #prp-copy-muilib
  84.    "Kopiere die Mui Klassen-Bibliothek")
  85. (set #hlp-copy-muilib
  86.    "Die Bibliothek ermöglicht die Programmierung von MUI in C++")
  87. (set #prp-copy-rexxscripts
  88.    "Kopiere die neuen Makescripts in disch Schublade Rexx")
  89. (set #hlp-copy-rexxscripts (cat "\n"
  90.    "Die Rexxscripts ermöglichen eine einfache Erweiterung\n"
  91.    "des Leistungsspektrums der Projektverwaltung"))
  92.  
  93. ; Die Dateigrößen
  94.  
  95. (set size-stormcpp            24000)
  96. (set size-stormc                437000)
  97. (set size-stormed                210000)
  98. (set size-stormshell              340000)
  99. (set size-stormrun            220000)
  100. (set size-stormasm            36000)
  101. (set size-stormpics            50000)
  102. (set size-stormlex            100000)
  103. (set size-libs                    520000)
  104. (set size-inlcudes            270000)
  105. (set size-demos                70000)
  106.  
  107. (set size-komplett    ( + size-stormrun size-stormasm size-stormcpp size-stormc size-stormed size-stormshell size-stormpics size-stormlex size-libs size-inlcudes size-demos))
  108.  
  109. ; ----------------------------- Prozeduren ------------------------------
  110.  
  111. (Procedure Make_Folder
  112.     (
  113.     (set folder (tackon folder "StormC"))
  114.     (if (= (exists folder) 0)
  115.        (
  116.        (makedir folder (infos))
  117.        )
  118.     ))
  119. )
  120.  
  121. ;=====================================================================================
  122. ; Beginn der Installation
  123. ;=====================================================================================
  124.  
  125. ; Eine kleine Einleitung, gefolgt vom Startbild des Installers.
  126.  
  127. (set act-user-level @user-level)
  128. (user 1)
  129.  
  130. (message (cat    "\nWillkommen bei der Installation der \n\n\"StormC-Demoversion "
  131.                      stcpp-version " vom "stcpp-date "\"!\n\n"
  132.                     "Dieses Skript kopiert die verschiedenen Dateien, "
  133.                     "aus denen sich das Compilersystem zusammensetzt, "
  134.                     "auf Ihre Festplatte.\n\n"
  135.                "© 1997 HAAGE&PARTNER Computer GmbH"))
  136.  
  137. (user act-user-level)
  138. (welcome)
  139.  
  140. (complete 5)
  141.  
  142. (set act-user-level @user-level)
  143. (user 1)
  144.  
  145.  
  146. ;    Alte Version prüfen und entsprechende Warnung ausgeben! **************************************************************
  147.  
  148. (set folder "WORK:StormC")
  149.  
  150. (if (exists "StormC:" (noreq))
  151.     (
  152.         (message (cat    "\nAuf Ihrer Festplatte befindet sich bereits eine\n"
  153.                         "Installation von StormC! Wählen Sie bitte die über-\n"
  154.                         "geordnete Schublade oder das jeweilige Laufwerk an,\n"
  155.                         "wenn Sie ihr altes System aktualisieren möchten!"))
  156.  
  157.     (set folder (getassign "STORMC"))
  158.     )
  159. )
  160.  
  161. (set cmpstr (getassign "STORMC"))
  162.  
  163. (user act-user-level)
  164.  
  165. (if (= @user-level 0)
  166.     (
  167.     (user 1)
  168.     (message (cat    "Im Einsteiger-Modus wird davon ausgegangen, daß Storm C auf "
  169.                         "einer Festplatte installiert wird, auf der noch mindestens "
  170.                         "ca. 6 MByte freier Speicherplatz verfügbar sind. Sie werden "
  171.                         "dazu im nächsten Fenster nach dem Namen der gewünschten "
  172.                         "Schublade gefragt.\n\n"
  173.                         "Alle weiteren Angaben werden dann vom Installations-Skript "
  174.                         "möglichst genau an Ihr System angepaßt."))))
  175.  
  176. (set ok 0)
  177. (while (not ok)
  178.     (set folder
  179.         (askdir
  180.             (prompt (cat "\n"
  181.                              "Auswahl des Pfades für die Compiler-Installation.\n"
  182.                              "Eine Schublade mit dem Namen StormC wird automatisch erzeugt!"))
  183.             (help (cat    "    Sie können über das Symbol 'Laufwerke anz.' (bzw. 'Show drives') "
  184.                             "eine Übersicht über alle Laufwerke Ihres Amiga anfordern; aus "
  185.                             "dieser Übersicht sollten Sie nur die oberen, nicht farblich "
  186.                             "gekennzeichneten Einträge auswählen.\n"
  187.                             "    Typische sinnvolle Namen sind z.B. \"WORK:\", \"HD0:\" oder \"DH0:\"; "
  188.                             "nicht verwenden sollten Sie Namen wie \"DF0:\", \"DF1:\", "
  189.                             "\"DF2:\", \"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
  190.                             "\"WB_2.x:\", \"System3.0:\" oder \"WB_3.x:\"!"
  191.                             "\n\n"
  192.                             "Storm C kann nur in eine Schublade nicht aber auf eine "
  193.                             "Partition direkt installiert werden! Wenn Sie also nur ein Laufwerk "
  194.                             "für die Installation auswählen, wird Ihnen eine Fehlermeldung angezeigt!\n\n"
  195.                             @askdir-help))
  196.             (default folder)
  197.             (disk)
  198.         )
  199.     )
  200.  
  201.    (Make_Folder)    ; // Automatisch neues Verzeichnis anlegen!
  202.  
  203.     ; Ist der Dateiname leer oder endet mit einem ':' oder existiert unter
  204.     ; diesem Namen kein Verzeichnis, wird eine Fehlermeldung angezeigt; andernfalls
  205.     ; kann die Auswahl-Schleife beendet werden.
  206.     (if (or (or (or (<= (strlen folder) 0) (= (substr folder (- (strlen folder) 1) 1) ":")) (= (exists folder (noreq)) 0)) (= (getdiskspace folder) -1))
  207.         (message (cat    "\nBei Ihrer Auswahl \"" folder "\" handelt es sich nicht um "
  208.                             "eine gültige Schublade!\n\n"
  209.                             "Sie können über das Symbol 'Laufwerke anz.' (bzw. 'Show drives') "
  210.                             "eine Übersicht über alle Laufwerke Ihres Amiga anfordern; aus "
  211.                             "dieser Übersicht sollten Sie nur die oberen, nicht farblich "
  212.                             "gekennzeichneten Einträge auswählen.\n"
  213.                             "Über den Schalter \"Neue Schublade anlegen...\" können Sie ein neue "
  214.                                "Schublade erzeugen. Diese neue Schublade\nwird auf der Partition "
  215.                                "angelegt, die Sie soeben betrachten."))
  216.         ;else
  217.         (
  218.             (set freediskspace (getdiskspace folder))    ; Der freie Speicher auf diesem Medium
  219.  
  220.             (if (< freediskspace size-komplett)
  221.                 (
  222.                 (user 1)
  223.                 (message (cat    "\nAuf der ausgewählten Festplattenpartition "
  224.                                             "steht nicht genügend freier Speicher für die "
  225.                                             "komplette Installation des Compilersystems zur Verfügung.\n\n"
  226.                                             "Freier Speicher " freediskspace "!\n"
  227.                                             "Benötigter Speicher " size-komplett "!\n\n"
  228.                                             "Bitte wählen Sie eine andere Partition, auf "
  229.                                             "der entsprechende Kapazitäten vorhanden sind!"))
  230.                 )
  231.             ;else
  232.             (set ok 1)
  233.             )
  234.         )
  235.     )
  236. )
  237.  
  238. (makeassign "STORMC")
  239.  
  240. (user act-user-level)
  241.  
  242. (set @default-dest folder)    ; Die Zuweisung ist sehr wichtig!
  243.  
  244. (set destbin    (tackon folder "StormSYS"))
  245. (if                                          ; Compiler-Verzeichnis erzeugen
  246.     (= (exists destbin) 0)
  247.     (makedir destbin (infos))
  248. )
  249.  
  250. (set destdemo    (tackon folder "Examples"))
  251. (if                                          ; Demo-Verzeichnis erzeugen
  252.     (= (exists destdemo) 0)
  253.     (makedir destdemo (infos))
  254. )
  255. (set destinclude (tackon folder "Include"))
  256. (if                                          ; Includes-Verzeichnis erzeugen
  257.     (= (exists destinclude) 0)
  258.     (makedir destinclude)
  259. )
  260.  
  261. (set destlib    (tackon folder "Lib"))
  262. (if                                          ; Libraries-Verzeichnis erzeugen
  263.     (= (exists destlib) 0)
  264.     (makedir destlib)
  265. )
  266.  
  267. (set destmanual    (tackon folder "Manual"))
  268. (if                                          ; Dokumentations-Verzeichnis erzeugen
  269.     (= (exists destmanual) 0)
  270.     (makedir destmanual (infos))
  271. )
  272.  
  273. (set desttools    (tackon folder "Tools"))
  274.  
  275. (if                                          ; Tools-Verzeichnis erzeugen
  276.     (= (exists desttools) 0)
  277.     (makedir desttools (infos))
  278. )
  279.  
  280. (set rexxscripts    (tackon folder "Rexx"))
  281.  
  282. (if                                          ;Rexx-Verzeichnis erzeugen
  283.     (= (exists rexxscripts) 0)
  284.     (makedir rexxscripts)
  285. )
  286.  
  287. (complete 5)
  288.  
  289. ; Liesmich Datei auf Festplatte kopieren!
  290.  
  291. (copyfiles
  292.     (source source-Liesmich)
  293.     (dest folder)
  294.     (infos)
  295. )
  296.  
  297. (copyfiles
  298.     (source source-readme)
  299.     (dest folder)
  300.     (infos)
  301. )
  302.  
  303. (copyfiles
  304.     (source source-italreadme)
  305.     (dest folder)
  306.     (infos)
  307. )
  308.  
  309. (complete 8)
  310.  
  311. (set morerunpath "run C/More Liesmich")
  312.  
  313. (run morerunpath)    ; Liesmich laden
  314.  
  315. (complete 10)
  316.  
  317. (set destinfo    (tackon folder "StormCPP.info"))
  318. (if                                          ; Projekt-Ikon erzeugen
  319.     (= (exists destinfo) 0)
  320.     (copyfiles
  321.         (source source-ikon)
  322.         (dest folder)
  323.     )
  324. )
  325.  
  326. (complete 15)
  327.  
  328. (copyfiles                                            ; Beispiele kopieren
  329.     (prompt #prp-copy-samples)
  330.     (help #hlp-copy-samples)
  331.     (source #samplesource)
  332.     (dest destdemo)
  333.     (all)
  334.     (confirm)
  335. )
  336.  
  337. (complete 20)
  338.  
  339. (copyfiles                                            ; Settings kopieren
  340.     (prompt #prp-copy-env)
  341.     (help #hlp-copy-env)
  342.     (source #envsource)
  343.     (dest "ENVARC:")
  344.     (all)
  345.     (confirm)
  346. )
  347.  
  348. (complete 22)
  349.  
  350. (copyfiles                                            ; Settings kopieren
  351.     (prompt #prp-copy-env)
  352.     (help #hlp-copy-env)
  353.     (source #envsource)
  354.     (dest "ENV:")
  355.     (all)
  356.     (confirm)
  357. )
  358.  
  359. (complete 25)
  360.  
  361. (copyfiles                                            ; Compiler kopieren
  362.     (prompt #prp-copy-bin)
  363.     (help #hlp-copy-bin)
  364.     (source #binsource)
  365.     (dest destbin)
  366.     (all)
  367.     (confirm)
  368. )
  369.  
  370. (complete 40)
  371.  
  372. (copyfiles                                            ; Includes kopieren
  373.     (prompt #prp-copy-includes)
  374.     (help #hlp-copy-includes)
  375.     (source #includesource)
  376.     (dest destinclude)
  377.     (all)
  378.     (confirm)
  379. )
  380.  
  381. (complete 60)
  382.  
  383. (copyfiles                                            ; Libs kopieren
  384.     (prompt #prp-copy-libs)
  385.     (help #hlp-copy-libs)
  386.     (source #libsource)
  387.     (dest destlib)
  388.     (all)
  389.     (confirm)
  390. )
  391.  
  392. (complete 80)
  393.  
  394. (copyfiles                                            ; Manual kopieren
  395.     (prompt #prp-copy-manual)
  396.     (help #hlp-copy-manual)
  397.     (source #manualsource)
  398.     (dest destmanual)
  399.     (all)
  400.     (confirm)
  401. )
  402.  
  403. (complete 90)
  404.  
  405.  
  406. (copyfiles                                            ; Tools kopieren
  407.     (prompt #prp-copy-tools)
  408.     (help #hlp-copy-tools)
  409.     (source #toolssource)
  410.     (dest desttools)
  411.     (all)
  412.     (confirm)
  413. )
  414.  
  415. (complete 91)
  416.  
  417.  
  418. (copyfiles                                            ; Rexx-Scripts kopieren
  419.     (prompt #prp-copy-rexxscripts)
  420.     (help #hlp-copy-rexxscripts)
  421.     (source #rexxsource)
  422.     (dest rexxscripts)
  423.     (all)
  424.     (confirm)
  425. )
  426.  
  427. (complete 93)
  428.  
  429.  
  430. (copylib                                            ; Wizard.library kopieren
  431.     (prompt #prp-copy-wizlib)
  432.     (help #hlp-copy-wizlib)
  433.     (source #wizlib)
  434.     (dest "LIBS:")
  435.     (confirm)
  436. )
  437.  
  438. (complete 96)
  439.  
  440.  
  441. ; ------- STARTUP ÄNDERN
  442.  
  443. (set command1 (cat  "ASSIGN STORMC: " folder ""))
  444.  
  445. (set command1.txt
  446.     (cat
  447.          "\n\n\nUm mit StromC richtig arbeiten zu "
  448.       "können muß eine Änderung an der User-Startup vorgenommen werden.\n\n"
  449.          command1
  450.     )
  451. )
  452.  
  453. (startup "StormC"
  454.     (prompt command1.txt)
  455.     (help #help-startup)
  456.     (command command1)
  457. )
  458.  
  459. (makeassign "STORMC")
  460. (makeassign "STORMC" folder)
  461.  
  462. (complete 100)
  463.  
  464. ; ------- FERTIG
  465.  
  466. (message (cat
  467.     "\nInstallation des StormC Demo Compilers beendet.\n"
  468.    "Falls die Zeilen:\n" command1 "\nnicht in Ihre Startup-Sequence bzw. "
  469.    "User-Startup eingefügt wurde, dann holen Sie dies bitte nach.\n\n"
  470.    "\n\nWir wünschen ihnen viel Erfolg bei der Lösung Ihrer Programmieraufgaben!")
  471. )